package com.terrier.net
{
    import flash.net.Socket;
    import flash.utils.ByteArray;

    public interface IWxSocketStrategy
    {
        /**
         * 初始化Socket对象的属性
         * @param socket Socket对象
         */
        function initSocket(socket:Socket):void;

        /**
         * 将数据写入Socket对象. 如果需要发送,则返回true;否则返回false.
         * @param socket Socket对象
         * @param data 写入的数据
         * @return 需要发送,则返回true;否则返回false
         */
        function writeData(socket:Socket, data:*):Boolean;

        /**
         * 从Socket对象中读取数据
         * @param socket Socket对象
         * @return 读取的数据
         */
        function readData(socket:Socket):*;

        /**
         * 是否需要进一步读取
         * @return 如果需要进一步读取,则返回true;否则,返回false.
         */
        function get readMore():Boolean;
    }
}